package cn.jetpiece.cloud.log.api.model.query;

import cn.jetpiece.cloud.model.page.PageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * <p>
 * 网关日志分页查询条件
 * </p>
 *
 * @author XuJZ
 */
@Data
@ApiModel
@EqualsAndHashCode(callSuper = true)
public class GatewayLogQuery extends PageQuery {


    /**
     * UUID
     */
    @ApiModelProperty(value = "UUID")
    private Long id;

    /**
     * 用户编号
     */
    @ApiModelProperty(value = "用户编号")
    private Long userId;

    /**
     * 用户编号
     */
    @ApiModelProperty(value = "用户编号")
    private String username;

    /**
     * 访问实例
     */
    @ApiModelProperty(value = "访问实例")
    private String targetServer;

    /**
     * IP地址
     */
    @ApiModelProperty(value = "IP地址")
    private String ipAddress;

    /**
     * 请求协议
     */
    @ApiModelProperty(value = "请求协议")
    private String requestSchema;

    /**
     * 请求方法
     */
    @ApiModelProperty(value = "请求方法")
    private String requestMethod;

    /**
     * 请求路径
     */
    @ApiModelProperty(value = "请求路径")
    private String requestPath;

    /**
     * 请求时间,不能跨月查询,>=
     */
//    @NotEmpty(message = "请求时间开始不能为空")
    @ApiModelProperty(value = "请求时间,>=",required = true)
    private Date requestTimeStart;

    /**
     * 请求时间,不能跨月查询,<
     */
//    @NotNull(message = "请求时间截止不能为空")
    @ApiModelProperty(value = "请求时间,<",required = true)
    private Date requestTimeEnd;

    /**
     * 执行时间,>=
     */
    @ApiModelProperty(value = "执行时间,>=")
    private Long executeTimeStart;

    /**
     * 执行时间,<
     */
    @ApiModelProperty(value = "执行时间,<")
    private Long executeTimeEnd;

    /**
     * 日志类型
     */
    @ApiModelProperty(value = "日志类型")
    private Long logType;
}

